﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace Kokomo.Mirror.PeFormat
{
	[Description("File Header")]
	public class NewExeFileHeader : PeHeaderStruct
	{
		public static readonly int NeSignature = 0x454E;
		public static readonly int PeSignature = 0x4550;

		[TypeConverter(typeof(HexConverter))]
		public int Signature { get; private set; }

		public Machine Machine { get; private set; }

		[DisplayName("Number of sections")]
		public ushort NumberOfSections { get; internal set; }

		[DisplayName("Time/date stamp")]
		[TypeConverter(typeof(HexConverter))]
		public uint TimeDateStamp { get; private set; }

		[DisplayName("Pointer to symbol table")]
		[TypeConverter(typeof(HexConverter))]
		public uint PointerToSymbolTable { get; private set; }

		[DisplayName("Number of symbols")]
		public uint NumberOfSymbols { get; private set; }

		[DisplayName("Size of optional header")]
		[TypeConverter(typeof(HexConverter))]
		public ushort SizeOfOptionalHeader { get; private set; }

		[DisplayName("Characteristics")]
		public FileCharacteristics Characteristics { get; private set; }
	}
}
